package com.example.demo.modules.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.modules.dao.StudentDao;
import com.example.demo.modules.entity.StudentEntity;
import com.example.demo.modules.service.StudentService;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @Description:
 * @Author Landiy
 * @Emali yuyi@mingze.com
 * @Date 2021/6/1715:09
 */
@Service("StudentService")
public class StudentServiceImpl extends ServiceImpl<StudentDao, StudentEntity> implements StudentService {

    @Override
    public List<StudentEntity> listStudent() {
        List<StudentEntity> listStudent = this.list();

        /**
         * sort排序
         * 首先先判断需要排序的数据量是否大于60。
         * 小于60：使用插入排序，插入排序是稳定的
         * 大于60的数据量会根据数据类型选择排序方式：
         * 基本类型：使用快速排序。因为基本类型。1、2都是指向同一个常量池不需要考虑稳定性。
         * Object类型：使用归并排序。因为归并排序具有稳定性。
         * 升序排的话就是第一个参数.compareTo(第二个参数)
         * 降序排的话就是第二个参数.compareTo(第一个参数)
         */
        Collections.sort(listStudent, new Comparator<StudentEntity>() {
            @Override
            public int compare(StudentEntity o1, StudentEntity o2) {
                return o1.getAge().compareTo(o2.getAge());
            }
        });

        return listStudent;
    }

}
